Enterprise Version
functionalist style